package jogoKing.minijogos;

import verificacao.TabelaVerificacao;
import jogador.Jogador;
import jogoKing.EstadoJogo;
import baralho.Mesa;
import baralho.Monte;
import baralho.carta.Naipe;
import bd.BDConnection;

public class JogoCopas extends MiniJogo {
	private final int PontuacaoCartaEspecial = -20;

	public JogoCopas(Monte monte, Jogador[] jogadores, int id, BDConnection connection, EstadoJogo estado_jogo) {
		super(monte, jogadores, id, connection, estado_jogo);
		this.e_jogo_copas = true;
	}

	@Override
	public boolean verificaSeAcabou(TabelaVerificacao tabela) {
		// Devolve verdadeiro quando j� estiverem jogadas todas as cartas do
		// naipe copas.
		// Vai � tabela de verifica��es contar se j� foram jogadas 13copas?...)
		assert(tabela != null);
		if (tabela.todasCopas())
			return true;
		return false;

	}

	public int contaCartasEspeciais(Mesa mesa) {
		// Conta o numero de cartas especiais (na mesa) em cada ronda, e
		// multiplica pelos pontos.

		// Este processo talvez possa ser melhorado
		assert(mesa != null);
		int num_cartas = 0;
		for (int i = 0; i != mesa.length(); i++) {
			if (mesa.getJogada(i).getCarta().getNaipe() == Naipe.Copas)
				num_cartas++;
		}
		return num_cartas * PontuacaoCartaEspecial;
	}

	public Naipe getTrunfo() {
		return null;
	}

}
